/**
 * 日期工具函数
 */

/**
 * 格式化日期为 YYYY-MM-DD 格式
 * @param dateStr 日期字符串
 * @returns 格式化后的日期字符串
 */
export const formatDate = (dateStr: string | null | undefined): string => {
  // 处理空值或无效值
  if (!dateStr || dateStr === 'null' || dateStr === 'undefined' || dateStr.includes('DBNull')) {
    return '';
  }
  
  try {
    const date = new Date(dateStr);
    if (isNaN(date.getTime())) return '';
    
    return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
  } catch {
    // 发生错误时返回空字符串
    console.warn('日期格式化错误:', dateStr);
    return '';
  }
}

/**
 * 格式化日期时间为 YYYY-MM-DD HH:mm:ss 格式
 * @param dateStr 日期时间字符串
 * @returns 格式化后的日期时间字符串
 */
export const formatDateTime = (dateStr: string | null | undefined): string => {
  // 处理空值或无效值
  if (!dateStr || dateStr === 'null' || dateStr === 'undefined' || dateStr.includes('DBNull')) {
    return '';
  }
  
  try {
    const date = new Date(dateStr);
    if (isNaN(date.getTime())) return '';
    
    return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} ${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}:${String(date.getSeconds()).padStart(2, '0')}`;
  } catch {
    // 发生错误时返回空字符串
    console.warn('日期时间格式化错误:', dateStr);
    return '';
  }
}

/**
 * 格式化日期时间为 YYYY-MM-DD HH:mm 格式
 * @param dateStr 日期时间字符串
 * @returns 格式化后的日期时间字符串
 */
export const formatDateTimeShort = (dateStr: string | null | undefined): string => {
  // 处理空值或无效值
  if (!dateStr || dateStr === 'null' || dateStr === 'undefined' || dateStr.includes('DBNull')) {
    return '';
  }
  
  try {
    const date = new Date(dateStr);
    if (isNaN(date.getTime())) return '';
    
    return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} ${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}`;
  } catch {
    // 发生错误时返回空字符串
    console.warn('日期时间格式化错误:', dateStr);
    return '';
  }
}

/**
 * 获取当前日期字符串 YYYY-MM-DD
 * @returns 当前日期字符串
 */
export const getCurrentDate = (): string => {
  const date = new Date();
  return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
}

/**
 * 获取当前日期时间字符串 YYYY-MM-DD HH:mm:ss
 * @returns 当前日期时间字符串
 */
export const getCurrentDateTime = (): string => {
  const date = new Date();
  return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} ${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}:${String(date.getSeconds()).padStart(2, '0')}`;
} 